package com.castle.fortress.admin.goods.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.castle.fortress.admin.goods.dto.GoodsSpecItemDto;
import com.castle.fortress.admin.goods.entity.GoodsSpecItemEntity;

import java.util.List;

/**
 * 商品规格项目 服务类
 *
 * @author majunjie
 * @since 2021-11-25
 */
public interface GoodsSpecItemService extends IService<GoodsSpecItemEntity> {

    /**
     * 分页展示商品规格项目列表
     * @param page
     * @param goodsSpecItemDto
     * @return
     */
    IPage<GoodsSpecItemDto> pageGoodsSpecItem(Page<GoodsSpecItemDto> page, GoodsSpecItemDto goodsSpecItemDto);

    /**
    * 分页展示商品规格项目扩展列表
    * @param page
    * @param goodsSpecItemDto
    * @return
    */
    IPage<GoodsSpecItemDto> pageGoodsSpecItemExtends(Page<GoodsSpecItemDto> page, GoodsSpecItemDto goodsSpecItemDto);
    /**
    * 商品规格项目扩展详情
    * @param id 商品规格项目id
    * @return
    */
    GoodsSpecItemDto getByIdExtends(Long id);

    /**
     * 展示商品规格项目列表
     * @param goodsSpecItemDto
     * @return
     */
    List<GoodsSpecItemDto> listGoodsSpecItem(GoodsSpecItemDto goodsSpecItemDto);

    /**
     * 删除商品的规格项 真删
     * @param goodsId 商品id
     */
    void deleteByGoodsId(Long goodsId);

    /**
     * 查询商品的全部规格项
     * @param goodsId
     * @return
     */
    List<GoodsSpecItemDto> listByGoodsId(Long goodsId);
}
